home *** CD-ROM | disk | FTP | other *** search
/ Turnbull China Bikeride / Turnbull China Bikeride - Disc 2.iso / STUTTGART / PROBLEMS / BENCHMARK / BUBBLESORT / bubbletest / provesrc < prev    next >
Text File  |  1992-05-16  |  3KB  |  122 lines

  1.  ;INCLUDE <formula$dir>.function_h
  2.  
  3.  .INCLUDE <bubbletest$dir>.func_asm
  4.  ;DECLARE INT field(INT fieldnr,CHARPTR target,CHARPTR source)
  5.  
  6.  
  7.  B start
  8.  
  9.  ;CHAR bubbletest_dir[256]
  10.  ;CHAR command[256] 
  11.  ;CHAR field2[256]
  12.  
  13.  ;INT ignorelines
  14.  
  15.  ;INT linecount
  16.  
  17.  ;INT  handleprovefile
  18.  ;CHAR nameprovefile[256]
  19.  ;CHAR lineprovefile[512]
  20.  
  21.  ;INT  handleoutput
  22.  ;CHAR nameoutput[256]
  23.  ;CHAR lineoutput[512]
  24.  ;CHAR field1output[512]
  25.  
  26. start
  27.   ;LET system("wimpslot -min 15K -max 15K");
  28.  
  29.   ;LET getenv(bubbletest_dir,"bubbletest$dir",255);
  30.   ;LET strcpy(nameprovefile,bubbletest_dir);
  31.   ;LET strcat(nameprovefile,".provefile");
  32.  
  33.   ;LET handleprovefile=openr(nameprovefile)
  34.   ;IF errorflag
  35.       perror      
  36.       SWI XOS_Exit
  37.   ;ENDIF
  38.  
  39.   ;LET linecount=0;
  40.   ;LET getclitail(command);
  41.  
  42.   ;LET field(2,field2,command)
  43.   
  44.   ;IF field2[0]==(CHAR)0
  45.      ;LET ignorelines=0;     
  46.   ;ELSE
  47.      ;LET ignorelines=string2int(field2)
  48.      ;IF errorflag
  49.         perror
  50.         SWI XOS_Exit
  51.      ;ENDIF
  52.   ;ENDIF
  53.  
  54.   ;LET field(1,nameoutput,command);
  55.     
  56.   ;LET handleoutput=openr(nameoutput)
  57.   ;IF errorflag
  58.       perror      
  59.       ;LET close(handleprovefile);
  60.       SWI XOS_Exit
  61.   ;ENDIF 
  62.      
  63.   ;WHILE ! eof(handleprovefile)
  64.      ;LET linecount=linecount+1
  65.      ;LET fgets(lineoutput,handleoutput,512);
  66.      ;IF lineoutput[0]==(CHAR)0;
  67.          ;LET fgets(lineoutput,handleoutput,512);
  68.      ;ENDIF
  69.      ;IF errorflag 
  70.         perror      
  71.         B bye
  72.      ;ENDIF
  73.      ;LET field(1,field1output,lineoutput)
  74.      ;IF ( ((field1output[0] >= (CHAR)"0") && (field1output[0] <= (CHAR)"9")) \
  75.         ;  || (field1output[0]==(CHAR)"+") || (field1output[0]==(CHAR)"-") )
  76.         ;IF ( (field1output[0]==(CHAR)"+") || (field1output[0]==(CHAR)"-") )
  77.             ;LET strcpy(lineoutput,field1output+1)
  78.         ;ELSE
  79.             ;LET strcpy(lineoutput,field1output)
  80.         ;ENDIF
  81.         ;FOR (R1=0;((R1<strlen(lineoutput)-1) && (lineoutput[R1]==(CHAR)"0"));\
  82.         ;     R1=R1+1);
  83.         ;ENDFOR
  84.         ;LET strcpy(field1output,lineoutput+R1);
  85.         ;LET strcpy(lineoutput,field1output);
  86.  
  87.         ;LET fgets(lineprovefile,handleprovefile,512);
  88.         ;IF errorflag 
  89.            perror      
  90.            B bye
  91.         ;ENDIF
  92.         ;IF (strcmp(lineoutput,lineprovefile)!=0)
  93.             ;LET writestr(" result in line ")
  94.             ;LET writeint(linecount);
  95.             ;LET writestr(" is different");
  96.             cr
  97.             ;LET writestr(" line of output: ")
  98.             ;LET writestr(lineoutput)
  99.             cr
  100.             ;LET writestr(" line of provefile: ")
  101.             ;LET writestr(lineprovefile)
  102.             cr
  103.         ;ENDIF    
  104.      ;ELSE
  105.         ;LET writestr(lineoutput)
  106.         ;IF linecount > ignorelines
  107.            ;LET fgets(lineprovefile,handleprovefile,512);
  108.            ;IF errorflag 
  109.               perror      
  110.               B bye
  111.            ;ENDIF
  112.         ;ENDIF
  113.         cr
  114.      ;ENDIF
  115.   ;ENDWHILE
  116.  
  117. bye
  118.   ;LET close(handleprovefile);
  119.   ;LET close(handleoutput);
  120.   SWI XOS_Exit   
  121.  .END
  122.